.page-wrapper {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 0px;

  .page-title {
    width: 100%;
    display: flex;
    background-color: #fff;
    padding: 16px;

    .page-main-title {
      color: #1d2129;
      line-height: 28px;
      font-size: 18px;
    }

    .page-sub-title {
      padding-left: 16px;
      color: #86909c;
      font-size: 14px;
      line-height: 28px;
    }
  }

  .page-content-box {
    width: 100%;
    height: 100%;
    flex: 1;
    padding: 16px;
  }

  .page-content {
    width: 100%;
    height: 100%;

    &.show-bg {
      background: #ffffff;
      box-shadow: 0px 4px 8px 0px rgba(0, 101, 242, 0.08);
      border-radius: 4px;
      padding: 16px;
    }
  }
}

.public-card {
  background: #ffffff;
  box-shadow: 0px 4px 8px 0px rgba(0, 101, 242, 0.08);
  border-radius: 8px;
  padding: 16px;
}

.color-primary {
  color: var(--ant-color-primary);
}

.color-success {
  color: var(--ant-color-success);
}

.color-warning {
  color: var(--ant-color-warning);
}

.color-error {
  color: var(--ant-color-error);
}

.public-hover-line {
  transition: all 0.5s ease-in-out;

  &::after {
    content: '';
    width: 0%;
    border-bottom: 2px solid var(--ant-color-primary);
    position: absolute;
    bottom: -1px;
    left: 0;
    z-index: 90;
    transform-origin: left bottom;
    transition: all 0.5s ease-in-out;
  }

  &:hover::after {
    width: 100%;
  }
}

.public-primary-color {
  color: var(--ant-color-primary) !important;
}

.public-text-3-overflow {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  line-clamp: 3;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.public-text-2-overflow {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  line-clamp: 2;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.public-text-1-overflow {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  line-clamp: 1;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}

.public-primary-border {
  border: 1px solid var(--ant-color-primary);
}

.public-border-bottom-line {
  border-bottom: 1px solid #e3e7ed;
}

.public-border-top-line {
  border-top: 1px solid #e3e7ed;
}

.public-border-line {
  border: 1px solid #9ed2c7;
}

.public-img-scale {
  transform: scale(1); // 可选，明确指定初始缩放
  transition: transform 0.5s ease-in-out; // 添加缓动函数使动画更自然

  &:hover {
    transform: scale(1.2);
  }
}

.public-card-shadow {
  box-shadow: 0px 4px 8px 0px rgba(60, 165, 144, 0.08);
}

.public-page-header-search {
  .search-input,
  .search-btn {
    height: 48px;
    line-height: 48px;
    border-radius: 0;
    box-shadow: none;
  }

  .search-btn {
    width: 120px;
  }
}

.public-p-title {
  position: relative;

  &::before {
    content: '';
    width: 3px;
    height: 70%;
    background-color: var(--ant-color-primary);
    position: absolute;
    top: 15%;
    left: -10px;
  }
}

.antd-border-none {
  border-bottom: 1px solid var(--ant-color-border);
  transition: border-bottom-color 0.3s ease-in-out;
  position: relative;

  .ant-input-outlined {
    border: none;
    box-shadow: none;
  }

  .ant-input-group-addon {
    border: none;
    background: none;
  }

  .ant-input-outlined.ant-input-status-error:not(.ant-input-disabled) {
    border: none;
    box-shadow: none;
  }
}

.ant-drawer-header {
  background: #f7f8fb;
}

.public-label {
  line-height: 30px;
  color: #7e8a9b;
  padding-right: 16px;
}

.public-value {
  line-height: 22px;
  color: #5a6170;
}

.ant-pro-table .ant-pro-table-search {
  border-radius: 0;
  border-bottom: 1px solid #e3e7ed;
}
